package com.google.code.teamtools.domain;

import java.util.Date;
import java.util.List;

import com.google.code.teamtools.util.Duration;

/**
 * Interface for a project.
 * 
 * @author David Kuhn
 */
public interface IProject extends IEntity
{
    /**
     * Returns the project code.
     * 
     * @return the project code
     */
    String getCode();
    
    /**
     * Returns the project manager for this project.
     * 
     * @return the project manager
     */
    IPerson getManager();
    
	/**
	 * Returns the name of the project.
	 * 
	 * @return the project name
	 */
	String getName();
	
	/**
	 * Sets the project code.
	 * 
	 * @param code the project code
	 */
	void setCode(String code);

	/**
	 * Sets the project manager for this project. 
	 * 
	 * @param manager the project manager to set.
	 */
	void setManager(IPerson manager);
	
	/**
	 * Sets the name of the project.
	 * 
	 * @param name the project name
	 */
	void setName(String name);
}
